<?php
  /*
    php和JS相比  php有一个非常好用的变量函数 顾名思义就是函数可以作为变量的形式来说使用
  */ 
  declare(strict_types = 1);  /* 在定义了严格模式之后 函数的返回值类型约束就会严格执行 错误就会直接报错 */ 

  function show():string
  {
    return 'i am a string';
  }
  echo show();
  function show2():string
  {
    return 'i am show2'.'<hr />';
  }
  $callback = 'show2';
  echo $callback();  #  i am show2   
  /* 以上使用了变量函数  也就相当于php做一层解析 先是将 $callback转换成了show2  之后再执行show2()   */

  /*
    使用变量函数可以很方便我们操作一些一些业务 这个就比js要方便一些  省去了类型判断的这个环节
      下面是一个简单的事例demo 证明类型函数的好用
  */

  function jpg()
  {
    return 'jpg function';
  }
  function png()
  {
    return 'png function';
  }
  function gif()
  {
    return 'gif function';
  }
  $file = 'jimmy.jpg';
  $extent = explode('.',$file)[1];  # explode('.',$file);  相当于JS中的 $file.split('.')[1];
  echo $extent();  # jpg function
  /*
    以上的一个例子就很好的说明了变量函数的优点 非常的好用  可以自定义的根据自己类型来走应该走的函数  省去了类型判断的环节
  */ 